import 'token_model.dart';

/// 刷新令牌结果模型
/// 
/// 用于封装令牌刷新操作的结果信息
/// 包括成功状态、错误信息和新的令牌模型
class RefreshTokenResult {
  /// 是否成功
  final bool isSuccess;
  
  /// 错误信息
  final String? errorMessage;
  
  /// 新的令牌模型
  final TokenModel? tokenModel;
  
  const RefreshTokenResult._({
    required this.isSuccess,
    this.errorMessage,
    this.tokenModel,
  });
  
  /// 创建成功结果
  factory RefreshTokenResult.success(TokenModel tokenModel) {
    return RefreshTokenResult._(
      isSuccess: true,
      tokenModel: tokenModel,
    );
  }
  
  /// 创建失败结果
  factory RefreshTokenResult.failure(String errorMessage) {
    return RefreshTokenResult._(
      isSuccess: false,
      errorMessage: errorMessage,
    );
  }
  
  /// 是否失败
  bool get isFailure => !isSuccess;
  
  @override
  String toString() {
    return 'RefreshTokenResult(isSuccess: $isSuccess, errorMessage: $errorMessage, tokenModel: $tokenModel)';
  }
}
